package com.javaframe.role.dao.core;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.javaframe.role.tools.PageInfo;

/**
 * 针对单个Entity对象的操作定义.不依赖于具体ORM实现方案.
 * 
 */
public interface EntityDao<T> {

	T get(Serializable id);

	List<T> getAll();
	
	List<T> getAll(String hql,List<?> list,PageInfo page);

	void save(Object o);

	void remove(Object o);

	void removeById(Serializable id);
	
	void removeByMap(Map<?,?> map);
	/**
	 * 获取Entity对象的主键名.
	 */
	String getIdName(Class<T> clazz);
}
